#ifndef BOTWTGLWIDGET_H
#define BOTWTGLWIDGET_H

#include "Wt/WGLWidget"
#include "Wt/WMatrix4x4"

using namespace Wt;

class BotWtGLWidget : public WGLWidget
{
    private: Program                _shaderProgram;
    private: AttribLocation         _vertexPositionAttribute;
    private: AttribLocation         _vertexColorAttribute;
    private: UniformLocation        _uniformModelMatrix;
    private: UniformLocation        _uniformViewMatrix;
    private: UniformLocation        _uniformClientMatrix;
    private: UniformLocation        _uniformProjectionMatrix;
    private: Buffer                 _renderingObjectVertexPositionBuffer;
    private: Buffer                 _renderingObjectVertexColorBuffer;
    private: Buffer                 _renderingObjectElementBuffer;

    private: JavaScriptMatrix4x4    _jsMatrix;
    private: WMatrix4x4             _worldView;
    private: WMatrix4x4             _worldProjection;

    public: BotWtGLWidget(WContainerWidget *parent);
    public: void initializeGL() override;
    public: void paintGL() override;
    public: void resizeGL(int width, int height) override;
};

#endif // BOTWTGLWIDGET_H
